\documentclass[10pt,a4paper,leqno]{article}
\usepackage{polski}
\usepackage[utf8]{inputenc}
\usepackage{a4wide}
%\usepackage[pdftex]{graphicx}
%\usepackage[colorlinks=true]{hyperref}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{}
\chead{Oszacowanie pracochłonności i kosztu przedsięwzięcia}
\rhead{Strona \thepage}
\lfoot{}
\cfoot{}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt}
\def\thesection{\arabic{section}.}
\def\thesubsection{\thesection\arabic{subsection}.}
\def\thesubsubsection{\thesubsection\arabic{subsubsection}.}

\title{{\LARGE\textbf{Projekt Kino}}\\ \large{Oszacowanie pracochłonności i kosztu przedsięwzięcia}}
\author{Paweł Chwała, Jacek Fiedorowicz, Piotr Kieć}

\begin{document}
\maketitle
\vfill
\nopagebreak
\begin{flushleft}
	\begin{tabular}{||c|c|c|l||}\hline
	\multicolumn{4}{|c|}{\textbf{Spis wersji}}\\ \hline\hline
	\textbf{Data} & \textbf{Wersja} & \textbf{Autor} & \textbf{Opis wprowadzonych zmian dokumentu}\\ \hline
4.01.2010 & 1.0 & Jacek Fiedorowicz & utworzenie i edycja dokumentu \\ \hline
	\end{tabular}
\end{flushleft}

\thispagestyle{empty}
\newpage
\thispagestyle{empty}
\tableofcontents
\newpage

\section{Szacowanie punktów funkcyjnych dla danych}\label{dane}

\renewcommand{\arraystretch}{1.3}
\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|l|l|}\hline
	\multicolumn{2}{|l|}{\textbf{ILF:} gość serwisu}\\ \hline
	\multicolumn{1}{|l|}{\textbf{RET}} & \multicolumn{1}{|l|}{\textbf{DET}}\\ \hline\hline
	uzytkownik & 
		-- idu \\
	      & -- imie \\
	      & -- nazwisko \\
	      & -- email \\
	      & -- nr\_tel \\
	      & -- login \\
	      & -- haslo \\
	      & -- typ \\
	      & -- data\_ur \\ \hline\hline
	\textbf{Liczba RET: 1} & \textbf{Liczba DET: 9} \\ \hline
\end{tabular}
\end{table}

\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|c|c|c|c|c|}\hline
	\textbf{Wewnętrzny plik logiczny} &
	\textbf{RET} &
	\textbf{DET} &
	\textbf{Złożoność} &
	\textbf{NPF} \\ \hline\hline
	gość serwisu & 1 & 9 & prosty & 7 \\ \hline
\end{tabular}
\end{table}

\newpage
\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|l|l|}\hline
	\multicolumn{2}{|l|}{\textbf{ILF:} klient}\\ \hline
	\multicolumn{1}{|l|}{\textbf{RET}} & \multicolumn{1}{|l|}{\textbf{DET}}\\ \hline\hline
	zapis & 
		-- idz \\
	      & -- idu \\
	      & -- idw \\
	      & -- data\_zapisu \\ \hline
	rezerwacja & 
		     -- idr \\
		   & -- idu \\
		   & -- ids \\
		   & -- data\_rezerwacji \\
		   & -- miejsca \\
		   & -- dostepnosc \\ \hline\hline
	\textbf{Liczba RET: 2} & \textbf{Liczba DET: 10} \\ \hline
\end{tabular}
\end{table}

\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|c|c|c|c|c|}\hline
	\textbf{Wewnętrzny plik logiczny} &
	\textbf{RET} &
	\textbf{DET} &
	\textbf{Złożoność} &
	\textbf{NPF} \\ \hline\hline
	klient & 2 & 10 & prosty & 7 \\ \hline
\end{tabular}
\end{table}

\newpage
\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|l|l|}\hline
	\multicolumn{2}{|l|}{\textbf{ILF:} kasjer}\\ \hline
	\multicolumn{1}{|l|}{\textbf{RET}} & \multicolumn{1}{|l|}{\textbf{DET}}\\ \hline\hline
	zapis & 
		-- idz \\
	      & -- idu \\
	      & -- idw \\
	      & -- data\_zapisu \\ \hline
	rezerwacja & 
		     -- idr \\
		   & -- idu \\
		   & -- ids \\
		   & -- data\_rezerwacji \\
		   & -- miejsca \\
		   & -- dostepnosc \\ \hline\hline
	\textbf{Liczba RET: 2} & \textbf{Liczba DET: 10} \\ \hline
\end{tabular}
\end{table}

\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|c|c|c|c|c|}\hline
	\textbf{Wewnętrzny plik logiczny} &
	\textbf{RET} &
	\textbf{DET} &
	\textbf{Złożoność} &
	\textbf{NPF} \\ \hline\hline
	kasjer & 2 & 10 & prosty & 7 \\ \hline
\end{tabular}
\end{table}

\newpage
\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|l|l|}\hline
	\multicolumn{2}{|l|}{\textbf{ILF:} dodawacz}\\ \hline
	\multicolumn{1}{|l|}{\textbf{RET}} & \multicolumn{1}{|l|}{\textbf{DET}}\\ \hline\hline
	film & 
		-- idf \\
	      & -- tytul \\
	      & -- rezyser \\
	      & -- gatunek \\
	      & -- opis \\
	      & -- kategoria\_wiekowa \\
	      & -- dlugosc \\
	      & -- data\_premiery \\ \hline
	wydarzenie & 
		     -- idw \\
		   & -- nazwa \\
		   & -- data \\
		   & -- opis \\
		   & -- ilosc\_miejsc \\
		   & -- kategoria\_wiekowa \\ \hline
	seans &
		-- ids \\
	      & -- idf \\
	      & -- nr\_sali \\
	      & -- data \\
	      & -- cena \\ \hline\hline
	\textbf{Liczba RET: 3} & \textbf{Liczba DET: 19} \\ \hline
\end{tabular}
\end{table}

\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|c|c|c|c|c|}\hline
	\textbf{Wewnętrzny plik logiczny} &
	\textbf{RET} &
	\textbf{DET} &
	\textbf{Złożoność} &
	\textbf{NPF} \\ \hline\hline
	dodawacz & 3 & 19 & prosty & 7 \\ \hline
\end{tabular}
\end{table}

\newpage
\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|l|l|}\hline
	\multicolumn{2}{|l|}{\textbf{ILF:} administrator}\\ \hline
	\multicolumn{1}{|l|}{\textbf{RET}} & \multicolumn{1}{|l|}{\textbf{DET}}\\ \hline\hline
	uzytkownik & 
		-- idu \\
	      & -- imie \\
	      & -- nazwisko \\
	      & -- email \\
	      & -- nr\_tel \\
	      & -- login \\
	      & -- haslo \\
	      & -- typ \\
	      & -- data\_ur \\ \hline
	sala\_kinowa &
		       -- nr\_sali \\
		     & -- dlugosc \\
		     & -- szerokosc \\ \hline\hline
	\textbf{Liczba RET: 2} & \textbf{Liczba DET: 12} \\ \hline
\end{tabular}
\end{table}

\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|c|c|c|c|c|}\hline
	\textbf{Wewnętrzny plik logiczny} &
	\textbf{RET} &
	\textbf{DET} &
	\textbf{Złożoność} &
	\textbf{NPF} \\ \hline\hline
	administrator & 2 & 12 & prosty & 7 \\ \hline
\end{tabular}
\end{table}

\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|c|c|c|c|c|}\hline
	\textbf{Wewnętrzny plik logiczny} &
	\textbf{RET} &
	\textbf{DET} &
	\textbf{Złożoność} &
	\textbf{NPF} \\ \hline\hline
	gość serwisu & 1 & 9 & prosty & 7 \\ \hline
	klient & 2 & 10 & prosty & 7 \\ \hline
	kasjer & 2 & 10 & prosty & 7 \\ \hline
	dodawacz & 3 & 19 & prosty & 7 \\ \hline
	administrator & 2 & 12 & prosty & 7 \\ \hline
	\multicolumn{3}{|c|}{} &
	\multicolumn{1}{|c|}{\textbf{SUMA}} &
	\multicolumn{1}{|c|}{\textbf{35}}\\ \hline
\end{tabular}
\end{table}

\newpage
\section{Szacowanie punktów funkcyjnych dla transakcji}\label{transakcje}

\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|c|c|c|c|c|c|c|}\hline
	\textbf{Transakcje} &
	\textbf{Typ} &
	\textbf{FTR} &
	\textbf{DET - DANE} &
	\textbf{DET - GUI} &
	\textbf{Złożoność} &
	\textbf{PF} \\ \hline\hline
	Wypisanie listy filmów & EQ & 4 & 7 & 1 & złożony & 6 \\ \hline
	Wypisanie listy wydarzeń & EQ & 4 & 6 & 1 & złożony & 6 \\ \hline
	Wypisanie listy seansów & EQ & 4 & 4 & 1 & złożony & 6 \\ \hline
	Wypisanie zapisów i rezerwacji & EQ & 1 & 6 & 3 & prosty & 3 \\ \hline
	Wypisanie użytkowników & EQ & 1 & 4 & 3 & prosty & 3 \\ \hline
	Rejestracja & EI & 1 & 7 & 3 & prosty & 3 \\ \hline
	Zapisanie się na wydarzenie & EI & 3 & 6 & 3 & złożony & 6 \\ \hline
	Wypisanie się z wydarzenia & EI & 3 & 6 & 3 & złożony & 6 \\ \hline
	Zapisywanie się na seans & EI & 3 & 4 & 3 & złożony & 6 \\ \hline
	Wypisywanie się z seansu & EI & 3 & 6 & 3 & złożony & 6 \\ \hline
	Akceptowanie rezerwacji na seans & EI & 1 & 5 & 3 & prosty & 3 \\ \hline
	Anulowanie rezerwacji na seans & EI & 1 & 5 & 3 & prosty & 3 \\ \hline
	Usuwanie zapisu na wydarzenie & EI & 1 & 6 & 3 & prosty & 3 \\ \hline
	Dodanie filmu & EI & 1 & 7 & 3 & prosty & 3 \\ \hline
	Dodanie wydarzenia & EI & 1 & 5 & 3 & prosty & 3 \\ \hline
	Dodanie nowego seansu & EI & 1 & 4 & 3 & prosty & 3 \\ \hline
	Nadawanie praw użytkownikowi & EI & 1 & 4 & 3 & prosty & 3 \\ \hline
	Dodanie sali kinowej & EI & 1 & 3 & 3 & prosty & 3 \\ \hline
	Usunięcie sali kinowej & EI & 1 & 3 & 3 & prosty & 3 \\ \hline
	Usunięcie użytkownika & EI & 1 & 3 & 3 & prosty & 3 \\ \hline
	\multicolumn{5}{|c|}{} &
	\multicolumn{1}{|c|}{\textbf{SUMA}} &
	\multicolumn{1}{|c|}{\textbf{81}}\\ \hline
\end{tabular}
\end{table}

\section{Obliczenie nieostatecznych punktów funkcyjnych}

Korzystając z \ref{dane} oraz z \ref{transakcje} dostajemy:
\begin{equation}\label{NPF}
 \textrm{NPF} = 35 + 81 = 116
\end{equation}

\newpage
\section{Czynnik korygujący}

\begin{table}[h]
\centering
\caption{}
\begin{tabular}{|c|c|c|}\hline
	\textbf{Numer} &
	\textbf{Generalna charakterystyka systemu} &
	\textbf{Oszacowanie stopnia wpływu} \\ \hline\hline
	1. & Przesyłanie danych & 0 \\ \hline
	2. & Przetwarzanie rozproszone & 0 \\ \hline
	3. & Wydajność & 1 \\ \hline
	4. & Obciążenie platformy systemowej & 0 \\ \hline
	5. & Stopa transakcji& 1 \\ \hline
	6. & Wprowadzanie danych on-line & 4 \\ \hline
	7. & Wydajność użytkownika końcowego & 1 \\ \hline
	8. & Aktualizacja on-line & 4 \\ \hline
	9. & Przetwarzanie złożone & 0 \\ \hline
	10. & Wielokrotna używalność & 1 \\ \hline
	11. & Łatwość instalacji & 1 \\ \hline
	12. & Łatwość obsługi & 0 \\ \hline
	13. & Wielokrotna lokalizacja & 0 \\ \hline
	14. & Łatwość wprowadzania zmian & 5 \\ \hline
	\multicolumn{1}{|c|}{} &
	\multicolumn{1}{|c|}{\textbf{SUMA}} &
	\multicolumn{1}{|c|}{\textbf{18}}\\ \hline
\end{tabular}
\end{table}

\begin{equation}\label{VAF}
 \textrm{VAF} = 0,65 + 0,01 \cdot 18 = 0,83
\end{equation}

\section{Całowita liczba punktów funkcyjnych}

\begin{equation}\label{PF0}
 \textrm{PF} = VAF \cdot NPF
\end{equation}

Korzystając z \ref{VAF} oraz \ref{NPF} dostajemy:
\begin{equation}\label{PF}
 \textrm{PF} = 0,83 \cdot 116 = 96
\end{equation}

\section{Przeliczenie punktów funkcyjnych na osobomiesiące, linie kodu źródłowego i koszt projektu}
Przyjmując średnią liczbę linii kodu źródłowego(LKZ) na jeden punkt funkcyjny (PF) dla języka PHP równą $15$ i 
korzystając z \ref{PF} dostajemy szacowaną liczbę linii kodu naszego projektu równą $96\cdot 15 = 1440.$\\
\indent Obierając za średnią produktywność na osobomiesiąc wartość $30$ (wartość ta jest liczona w punktach funkcyjnych) 
dostajemy $96/30 = 3,2$ osobomiesiące. Zamieniając $3,2$ osobomiesiące na $64$ osobodni (zakładamy, że osobomiesiąc to 
20 dni pracujących), a następnie na $512$ osobogodziny (zakładamy, że osobodzień to 8 godzin roboczych) i biorąc 
stawkę godzinową pracy programisty $40\textrm{zł}$ dostajemy koszt wyprodukowania kodu źródłowego serwisu Kino wynoszący 
$512\cdot 40 = 20480\textrm{zł}.$
 
\section{Słownik}
Słownik znajduje się w dokumencie \cite{slownik}.

\newpage
\begin{thebibliography}{2}
\addcontentsline{toc}{section}{Literatura}
\bibitem{LGR} L. Grocholski, \emph{Wykłady do przedmiotu Inżynieria oprogramowania}, 
Instytut Informatyki Uniwersytetu Wrocławskiego
\bibitem{slownik} Paweł Chwała, Jacek Fiedorowicz, Piotr Kieć, \emph{Słownik}
\end{thebibliography}
\end{document} 

\end{document} 
